←
▼
▲
%APPDATA%\Scripts\account_setting.vbs
ファイルを新規作成して下記のように記述してください。
Function Setting_getAdminUserName()
Setting_getAdminUserName = "Administrator"
End Function
Function Setting_getAdminUserName() as string
管理者のユーザー名を返します。
Windows XP で自分が管理者であったり、Windows 7 で管理者になれる
ユーザであれば、関数定義の記述は不要です。
参考
管理者のユーザー名は、
= 1 にしたときに使われます。
←
▼
▲
Sub Setting_buildTestPrompt( Prompt as TestPrompt )
テスト・プロンプトの設定を行います。
(src)
参考
【引数】
Prompt
設定 (TestPrompt_Setting.vbs のサンプルを参照)
プロンプトのメニュー項目を設定します。
テスト・スクリプト(Test.vbs)を登録します。
←
▼
▲
Function Setting_get7zExePath() as string
ソース
→ PC_setting_default.vbs
7-Zip
の 7z.exe のパスを返します。
←
▼
▲
Sub Setting_getTemp( out_FolderPath as string, out_LimitDate as Date )
テンポラリ・ファイルやテンポラリ・フォルダーの設定値を取得します。
【引数】
out_FolderPath
out_LimitDate
(出力) テンポラリ・フォルダのパス
(出力) 保存期限
サンプル
Sub Setting_getTemp( out_FolderPath, out_LimitDate )
out_FolderPath = env( "%Temp%\Report" )
out_LimitDate = DateAdd( "d", -2, Now() ) '// "d" = day
End Sub
下記は、Setting_getTemp を定義していないときと同じ設定です
テンポラリ・フォルダの設定に関するオブジェクト。
Dim g_TempFile as TempFileClass
out_FolderPath や out_LimitDate に値を代入しなかったら、デフォルト値が
使われます。
out_LimitDate 引数に出力した日時より前のタイムスタンプを持つファイルは、
GetTempPath で削除されます。 参考
参考
テンポラリ・ファイルのパスを返す
設定の変更
Setting_getTemp は、起動時に(vbslib.vbs の
で)呼ばれます。
動的にテンポラリ・ファイルやテンポラリ・フォルダーの設定値を変更するときは、
以下のようにコーディングしてください。
include "Setting_getTemp.vbs"
g_TempFile = Empty '// Setup to set another folder path
get_TempFile
Sub get_TempFile()
テンポラリ・ファイルやテンポラリ・フォルダーを設定します。
で)呼ばれます。
起動時に(vbslib.vbs の
←
▼
▲
Function Setting_getDiffPath() as string
GnuWin の diff.exe のパスを返します。
diff.exe がないと、
による警告がされます。
この関数の定義は、ユーザーが変更できます。
定義サンプル
Function Setting_getDiffPath()
Setting_getDiffPath = GetExistPathInSetting( Array( _
g_vbslib_folder +"GPL\GnuWin\bin\diff.exe" ), _
"Setting_getDiffPath" )
End Function
ソース
→ PC_setting_default.vbs
←
▼
▲
Function Setting_getDiff3Path() as string
が入っているフォルダーのパスを返します。
diff3.exe がないと、
による警告がされます。
この関数の定義は、ユーザーが変更できます。
定義サンプル
Function Setting_getDiff3Path()
Setting_getDiff3Path = GetExistPathInSetting( Array( _
g_vbslib_folder +"GPL\GnuWin\bin\diff3.exe" ), _
"Setting_getDiff3Path" )
End Function
ソース
→ PC_setting_default.vbs
diff3 (Diffutils)
←
▼
▲
Function Setting_getPatchPath() as string
GnuWin の patch.exe のパスを返します。
patch.exe がないと、
による警告がされます。
この関数の定義は、ユーザーが変更できます。
定義サンプル
Function Setting_getPatchPath()
Setting_getPatchPath = GetExistPathInSetting( Array( _
g_vbslib_folder +"GPL\GnuWin\bin\patch.exe" ), _
"Setting_getPatchPath" )
End Function
ソース
→ PC_setting_default.vbs
Windows の UAC によって、『要求された操作には管理者特権が必要です。』
と表示されるときは、patch.exe を p_atch.exe などに改名し、Setting_getPatchPath
の返り値も、それに合わせてください。
←
▼
▲
Function Setting_getPerlPath() as string
スクリプトのホスト(.exe) のパスを返します。
Perl
Perl がインストールされていないと、
による警告がされます。
この関数の定義は、ユーザーが変更できます。
定義サンプル
Function Setting_getPerlPath()
Setting_getPerlPath = GetExistPathInSetting( Array( _
g_vbslib_folder +"perl\bin\perl.exe", _
g_sh.ExpandEnvironmentStrings( "%ProgramFiles%\perl-strawberry-perl\perl\bin\perl.exe" ), _
g_sh.ExpandEnvironmentStrings( "%ProgramFiles(x86)%\perl-strawberry-perl\perl\bin\perl.exe" ) ), _
"Setting_getPerlPath" )
End Function
ソース
→ PC_setting_default.vbs
←
▼
▲
Function Setting_getNaturalDocsPerlPath() as string
の本体(Perl スクリプト)のパスを返します。
NaturalDocs がインストールされていないと、
による警告がされます。
定義サンプル
Function Setting_getNaturalDocsPerlPath()
Setting_getNaturalDocsPerlPath = GetExistPathInSetting( Array( _
g_sh.ExpandEnvironmentStrings( "%ProgramFiles%\NaturalDocs\NaturalDocs" ), _
g_sh.ExpandEnvironmentStrings( "%ProgramFiles(x86)%\NaturalDocs\NaturalDocs" ) ), _
"Setting_getNaturalDocsPerlPath" )
End Function
ソース
→ PC_setting_default.vbs
Natural Docs
この関数の定義は、ユーザーが変更できます。
←
▼
▲
Function Setting_getNaturalDocsPerlPath() as string
doxygen のフォルダーのパスを返します。
doxygen がインストールされていないと、
による警告がされます。
定義サンプル
Function Setting_getDoxygenPath()
Setting_getDoxygenPath = GetExistPathInSetting( Array( _
g_sh.ExpandEnvironmentStrings( "%ProgramFiles%\doxygen" ), _
g_sh.ExpandEnvironmentStrings( "%ProgramFiles(x86)%\doxygen" ) ), _
"Setting_getDoxygenPath" )
End Function
ソース
→ PC_setting_default.vbs
この関数の定義は、ユーザーが変更できます。
←
▼
▲
Function Setting_getSnapNotePath() as string
Snap Note の本体のパスを返します。
Snap Note が見つからないと、
による警告がされます。
定義サンプル
Function Setting_getSnapNotePath()
Setting_getSnapNotePath = GetExistPathInSetting( Array( _
g_sh.ExpandEnvironmentStrings( "%ProgramFiles%\Snap Note\Snap Note.exe" ) ), _
"Setting_getSnapNotePath" )
End Function
ソース
→ PC_setting_default.vbs
この関数の定義は、ユーザーが変更できます。
←
▼
▲
その他
←
▼
▲
コマンドプロンプト、またはウィンドウにメッセージを表示します。
Enter キーを押すまで待ちます。
プロンプトを表示し、ユーザからのキーボード入力を待ちます。
キーボード入力をエミュレーションします。
他にもあります。左のツリーから選択してください。
音楽ファイルや効果音ファイルを鳴らします。
コントロールパネルに設定されている効果音を鳴らします。
テスト
に入ります。
←
▼
▲
Function echo( Message as variant ) as string
コマンドプロンプト、またはウィンドウにメッセージを表示します。
【引数】
Message
表示する内容、またはオブジェクト
echo "はろー"
echo 1+1
サンプル:
Message にオブジェクトを指定した場合、Value プロパティを表示します。
参考
Class ClassX
Public Property Get Value()
関連
返り値
表示した内容(文字列)
があるときは、出力しません。
サンプル: ファイルとコマンドプロンプトの両方に出力する
Dim out : Set out = OpenForWrite( "_out.txt", Empty )
out.WriteLine echo( "はろー" )
→ T_Var.vbs # T_LoadEnvVars
テスト
で、コマンドプロンプトを表示しているときは、コマンド・
プロンプトの中に、そうではないときは、ウインドウに表示します。
echo は、
を使っているときは、Test_logs.txt ファイルにも出力します。
テスト・プロンプト (Test.vbs)
EchoOff オブジェクトがあるときでも出力したいときは、echo_v を使うか、標準出力して
ください。
例:echo_r "text", ""
今まで echo した内容をウィンドウで表示します。
echo で出力しないようにします。
標準出力かファイルに、文字列を出力します。
VBScript / WSH の標準的な表示関数。
ファイル:
vbslib.vbs
Message を表示可能な文字列に変換します。
Set obj = new ClassX
echo obj '// obj.xml プロパティを表示する
サンプル:
はろー
2
実行結果:
Dim a
a = 5
echo "a = "& a
a = 5
実行結果:
サンプル:
実行結果:
名前は、太郎です。
Dim name
name = "太郎"
echo "名前は、"+ name +"です。"
サンプル:
サンプル:
Dim name
name = input( "あなたの名前は?>" )
echo name +"さんですね。"
実行結果:
あなたの名前は >次郎
次郎さんですね。
echo
ソース
→ vbslib.vbs
←
▼
▲
Sub echo_flush()
(src)
コマンド・プロンプトを表示していないとき、今まで echo した文字列をウィンドウで表示します。
コマンド・プロンプトを表示しているときは、何もしません。
echo_flush を呼び出さなくても、プログラム終了時、pause、input 時、何度も echo したときは、
ウインドウに自動的に表示します。
参考
コマンドプロンプトを表示するかどうか
echo "注意してください。"
echo_flush
サンプル:
ファイル:
vbslib.vbs
←
▼
▲
Sub echo_line()
(src)
水平線を表示します。
------------------------------------------------------------
表示内容:
ファイル:
vbslib.vbs
←
▼
▲
Function FuncA( Param1 )
echo ">FuncA " & Param1
Dim ec : Set ec = new EchoOff
echo "SubA"
ec = Empty
echo FuncA
End Sub
EchoOff オブジェクトがあるときは、
で出力しません。
呼び出した関数名を表示する
EchoOff オブジェクトの削除で、表示を復活します。
ec=Empty しない場合でも、FuncA から返ると自動的に復活します。
(デストラクタによるため)
通常、下記のように使います。
関連
EchoOff オブジェクトがあるときに、長い処理の進捗状況を表示したいときは、echo_r で標準出力へ出力して
ください。
EchoOff
echo で表示しないようにする
ここの echo では表示されません。 実際は、FuncA 関数から呼び
出す関数の中から呼ばれる echo による表示を抑制します
→ vbslib.vbs
ソース
→ vbslib_mini.vbs
EchoOff オブジェクトを生成した関数から呼び出す関数の中で echo 出力を再開するときは、
EchoOff オブジェクトの Close を呼び出してください。
←
▼
▲
Dim g_EchoObj.m_bEchoOff as boolean
によって出力しないかどうか。
ソース
→ vbslib.vbs
サンプル
echo_v "EchoOff = "+ CStr( g_EchoObj.m_bEchoOff )
←
▼
▲
Sub DisableEchoOff()
EchoOff オブジェクトがあっても、echo 出力するようにします。
関連
Sub main()
DisableEchoOff
:
サンプル:
(src)
ファイル:
vbslib.vbs
←
▼
▲
Function echo_v( Message as string ) as string
文字列を出力します。 フィルタリングされません。
【引数】
Message
出力する内容の文字列(文字列以外は指定できません)
ファイル:
vbs_inc_sub.vbs
サンプル
If g_verbose Then echo_v "処理は1つも行われませんでした。"
g_verbose を使うときは、echo_v を使用してください。
の影響を受けません。(= フィルタリングされません)
エラーメッセージは、echo ではなく echo_v を使用してください。
テスト
→ T_Verbose.vbs # [T_Verbose]
関連
ソース
→ vbs_inc_sub.vbs
←
▼
▲
Function echo_r( Message as string, RedirectPath as string ) as string
標準出力かファイルに、文字列を出力します。
【引数】
Message
RedirectPath
出力する内容の文字列など(echo と同じ)
出力先のファイルパス、Empty のときは出力しない、""=標準出力へ
返り値
出力した内容の文字列
関連
echo_r "エラー", ""
サンプル
ソース
→ vbslib.vbs
←
▼
▲
(src)
Function Execute_Echo( ExpressionStr as string, Label as string ) as string
式とその計算結果を表示します。 デバッグ用です。
【引数】
ExpressionStr
Label
式(文字列)
表示内容の最初に表示するラベル
返り値
Execute に渡すコード
ファイル:
vbslib.vbs
書きかけ
関連
サンプル
←
▼
▲
Message を表示可能な文字列に変換します。
Function GetEchoStr( Message as variant ) as string
(src)
Message がオブジェクトの場合、
Message が Dictionary の場合、キーとアイテムの両方を文字列にします。
このとき、アイテムを再帰的に GetEchoStr に渡します。
Message が配列または ArrayClass の場合、すべての要素を文字列にします。
テスト
ファイル:
vbslib.vbs
サンプル:
s = GetEchoStr( object )
→ T_Value.vbs
の返り値を返します。
T_EchoStr
←
▼
▲
(src)
Dim g_CustomEchoStrGenerators as dictionary of Function
Function InitializeModule( ThisPath )
Set g_CustomEchoStrGenerators( "ClassA" ) = GetRef( "ClassA_xml_sub" )
End Function
Function ClassA_xml_sub( m as Object, Level as integer )
ClassA_xml_sub = GetTab(Level)+ "<"+TypeName(m)+" Name='"+ XmlAttrA( m.Name ) +_
"'/>"+ vbCRLF
End Function
表示可能な文字列に変換する関数の辞書。
サンプル
参考
の引数に指定したオブジェクトのクラスに、
関数の中で、g_CustomEchoStrGenerators に関数を登録してください。
を定義できないときは、
登録する関数は、xml_sub メソッドと同じ形式の文字列を返すようにしてください。
←
▼
▲
Echo 出力のコピーを横取りするストリーム オブジェクト。
Dim g_EchoCopyStream as TextStream or Empty
Echo 出力するときに、g_EchoCopyStream が Empty ではないときは、
その出力内容を WriteLine メソッドに渡します。
次の Echo 出力のコピーは、横取りできます。
次の Echo 出力のコピーは、横取りできません。
テスト
→ T_Verbose.vbs
→ Test.vbs
T_EchoCopyStream
→ T_EchoCopyStream.vbs